home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_03 / kamradt / cpyonwrt.h < prev    next >
C/C++ Source or Header  |  1994-02-07  |  525b  |  33 lines

  1. class String {
  2.  
  3. // the contents of the string 
  4. // class from Figure 5.
  5.  
  6. ...             
  7.  
  8. // this indexing operator could 
  9. // modify the string
  10.   char &operator[](int i) 
  11.   { 
  12.     if(imp->count > 1)
  13.       Split(); 
  14.     return imp->ptr[i]; 
  15.    }
  16. // This indexing operator won't 
  17. // modify, don't split.
  18.   char operator[](int i) const 
  19.   { 
  20.     return imp->ptr[i]; 
  21.   }
  22. private:
  23.   void Split() 
  24.   { 
  25. // Create private copy:
  26.     imp->count--; 
  27.     imp = new 
  28.       StringImp(imp->ptr); 
  29.   }
  30. };
  31.  
  32.  
  33.